In [1]:
import numpy as np
import matplotlib.pylab as plt
import seaborn as sns
import tensorflow as tf

In [2]:
num_points = 200
vectors_set = []
for i in range(num_points):
    x = np.random.normal(5,5) + 15
    y = x*1000 + (np.random.normal(0,3))*1000
    vectors_set.append([x,y])

x_data = [v[0] for v in vectors_set]
y_data = [v[1] for v in vectors_set]

In [3]:
plt.plot(x_data, y_data, 'ro')
plt.ylim([0, 40000])
plt.xlim([0, 35])
plt.xlabel('x')
plt.ylabel('y')
plt.show()


y = Wx + b


In [4]:
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))

y = W * x_data + b

In [5]:
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.001)
train = optimizer.minimize(loss)

In [6]:
sess = tf.Session()

sess.run(tf.global_variables_initializer())

In [7]:
for step in range(5):
    sess.run(train)
    print(step, sess.run(W), sess.run(b))
    print(step, sess.run(loss))
    
    plt.plot(x_data, y_data, 'ro')
    plt.plot(x_data, sess.run(W)*x_data + sess.run(b))
    plt.xlabel('x')
    plt.ylabel('y')
    plt.show()


0 [ 803.09771729] [ 39.19778824]
0 2.78605e+07
1 [ 971.0602417] [ 47.36304855]
1 1.07678e+07
2 [ 1006.14807129] [ 49.04573441]
2 1.0022e+07
3 [ 1013.47894287] [ 49.37424088]
3 9.98940e+06
4 [ 1015.01141357] [ 49.41986465]
4 9.98798e+06

In [ ]: